package com.leon.rose.modules.upms.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.leon.rose.common.utils.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.leon.rose.modules.upms.entity.SysUser;
import com.leon.rose.modules.upms.service.ISysUserService;

/**
 * <p>
 * 系统用户 前端控制器
 * </p>
 *
 * @author Leon
 * @since 2019-05-05
 */
@Api(description = "系统用户")
@RestController
@RequestMapping("/sysUser")
public class SysUserController {

    @Autowired private ISysUserService sysUserService;

    /**
     * 功能描述:
     * 〈新建系统用户〉
     * @param  sysUser 系统用户对象
     * @return : com.github.pig.common.util.R<java.lang.Boolean>
     * @author : Leon
     * @date : 2019-05-05
     */
    @ApiOperation("新建系统用户")
    @PostMapping
    public R<Boolean> addSysUser(@RequestBody SysUser sysUser){
        return new R<>(sysUserService.save(sysUser));
    }

    /**
     * 功能描述:
     * 〈根据主键ids删除系统用户列表〉
     * @param idList 系统用户id数组
     * @return : com.github.pig.common.util.R<java.lang.Boolean>
     * @author : Leon
     * @date : 2019-05-05
     */
    @ApiOperation("根据主键ids删除系统用户列表")
    @DeleteMapping
    public R<Boolean> delSysUserByIds(@RequestBody List<Integer> idList){
        return new R<>(sysUserService.removeByIds(idList));
    }

    /**
     * 功能描述:
     * 〈按条件分页查询系统用户〉
     * @param page 分页条件，可以传入下划式排序字段和排序方式
     * @param sysUser 条件对象
     * @return : com.github.pig.common.util.R<com.baomidou.mybatisplus.plugins.Page<com.leon.rose.modules.upms.entity.SysUser>>
     * @author : Leon
     * @date : 2019-05-05
     */
    @ApiOperation("按条件分页查询系统用户")
    @GetMapping
    public R<IPage<SysUser>>getSysUserPage(Page page,SysUser sysUser){
        QueryWrapper qw=new QueryWrapper();
        //ew.gt(StringUtils.isNotBlank(sysUser.getStartTime()),"create_time",sysUser.getStartTime());
        //ew.lt(StringUtils.isNotBlank(sysUser.getEndTime()),"create_time",sysUser.getEndTime());
        //ew.like(StringUtils.isNotBlank(sysUser.getName()),"name",sysUser.getName());
        //ew.eq(sysUser.getId()!=null,"id",sysUser.getId());
        return new R<>(sysUserService.page(page,qw));
    }

    /**
     * 功能描述:
     * 〈查询系统用户详情〉
     * @param id 系统用户主键
     * @return : com.github.pig.common.util.R<com.leon.rose.modules.upms.entity.SysUser>
     * @author : Leon
     * @date : 2019-05-05
     */
    @ApiOperation("查询系统用户详情")
    @GetMapping("/{id}")
    public R<SysUser> getSysUser(@PathVariable("id") Integer id){
        return new R<>(sysUserService.getById(id));
    }

    /**
     * 功能描述:
     * 〈修改系统用户信息〉
     * @param sysUser 要修改的系统用户信息
     * @return : com.github.pig.common.util.R<java.lang.Boolean>
     * @author : Leon
     * @date : 2019-05-05
     */
    @ApiOperation("修改系统用户信息")
    @PutMapping
    public R<Boolean> updateSysUserList(@RequestBody SysUser sysUser){
        return new R<>(sysUserService.updateById(sysUser));
    }

}
